// new

/**
 * @param {Function} constructor 
 * @param  {...any} args 
 * @returns object
 */
function _new(constructor, ...args) {
  const obj = {};
  obj.__proto__ = constructor.prototype;
  const ret = constructor.apply(obj, args);
  return typeof ret === 'object' && ret !== null ? ret : obj;
}